package org.kazuhiko.rpg.core.menu;

import java.awt.Rectangle;

import org.kazuhiko.rpg.core.types.TextureType;

public abstract class MenuItem
{
	private float x;
	private float y;
	private float width;
	private float height;
	private float r;
	private float g;
	private float b;
	private float a;
	private TextureType textureType;
	//private String text;
	//private int fontSize;
	//private Color fontColor;
	
	public MenuItem()
	{
		x = 0;
		y = 0;
		width = 0;
		height = 0;
		r = 0;
		g = 0;
		b = 0;
		a = 1;
		
		//text = "";
		//fontSize = 18;
		//fontColor = Color.white;
	}
	
	public MenuItem( float x, float y, float width, float height )
	{
		this.x = x;
		this.y = y;
		this.width = width;
		this.height = height;
	}
	
	/*
	public MenuItem( float x, float y, float width, float height, String text, int fontSize, Color fontColor )
	{
		this( x, y, width, height );
		
		this.text = text;
		this.fontSize = fontSize;
		this.fontColor = fontColor;
	}
	*/
	
	/*
	public MenuItem( float x, float y, float width, float height, String text, int fontSize, Color fontColor, float r, float g, float b, float a )
	{
		this( x, y, width, height, text, fontSize, fontColor );
		
		this.r = r;
		this.g = g;
		this.b = b;
		this.a = a;
	}
	*/
	
	public MenuItem( float x, float y, float width, float height, TextureType textureType, float r, float g, float b, float a )
	{
		this( x, y, width, height );
		
		this.textureType = textureType;
		this.r = r;
		this.g = g;
		this.b = b;
		this.a = a;
	}
	
	public float getX()
	{
		return x;
	}
	
	public float getY()
	{
		return y;
	}
	
	public float getWidth()
	{
		return width;
	}
	
	public float getHeight()
	{
		return height;
	}
	
	public float getR()
	{
		return r;
	}
	
	public float getG()
	{
		return g;
	}
	
	public float getB()
	{
		return b;
	}
	
	public float getA()
	{
		return a;
	}
	
	public TextureType getTextureType()
	{
		return textureType;
	}
	
	/*
	public String getText()
	{
		return text;
	}
	
	public int getFontSize()
	{
		return fontSize;
	}
	
	public Color getFontColor()
	{
		return fontColor;
	}
	*/
	
	public Rectangle getBounds()
	{
		return new Rectangle( ( int )x, ( int ) y, ( int ) width, ( int )height );
	}
	
	public abstract void render();
	public abstract void onClick();
}
